package tx_0425_1;

import java.util.*;
/**
 * ---------------------------------------------------------------------------------------------------------------------
 * 牛牛有n个长度相等由数字组成的字符串，牛牛将他们一行一行的排列在一起。
 * 牛牛喜欢从上到下读数，可以将这n个字符串读出了一些数字字符串，
 * 牛牛想把这些数字字符串记录下来，并将它们排序。
 * 希望你能帮牛牛将从小到大排序后的数字字符串输出出来，
 * 输出的这个数字字符串要去掉前导0。
 * ---------------------------------------------------------------------------------------------------------------------
 * 输入描述：第一行为n，表示有n个字符串。
 *         接下来有n行，每行有一个字符串str，
 *         1<=n<=9
 *         1<=str.length()
 * 输出描述：输出为一行，表示排序后的数字，每个数字以空格隔开。
 * 示例： 输入：
 *          3
 *          0123
 *          1234
 *          2345
 *       输出：
 *          12 123 234 345
 * ---------------------------------------------------------------------------------------------------------------------
 * 解题思路：
 *      循环输出然后去掉前导0。
 * ---------------------------------------------------------------------------------------------------------------------
 */
public class TestDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String[] str = new String[n];
        for(int i=0;i<n;++i){
            str[i] = sc.next();
        }
        int[] array= new int[str[0].length()];
        for (int i = 0; i < str[0].length(); i++) {
            StringBuffer tmp = new StringBuffer();
            for (int j = 0; j < n; j++) {
                char ch = str[j].charAt(i);
                tmp.append(ch);
            }
            array[i]=Integer.parseInt(tmp.toString());
        }
        Arrays.sort(array);
        StringBuffer s = new StringBuffer();
        for(int i=0;i<array.length;++i){
            s.append(String.valueOf(array[i]));
            s.append(" ");
        }
        s.deleteCharAt(s.length()-1);
        System.out.println(s);
    }
}
